Перейти к основному содержимому

6.4 Настройка ACL

6.4.1 Обзор

Введение в функциональность

Access Control Lists (ACL) классифицируют трафик с одинаковыми характеристиками. ACL могут содержать множество записей (Access Control Entries, ACE), которые сопоставляют поля пакета с заданными критериями. ACL могут фильтровать пакеты, полученные на интерфейсе, по множеству параметров, таких как IP-адрес, MAC-адрес, а также разрешать или запрещать передачу пакетов.

Описание принципа работы

Для описания ACL используются следующие термины и концепции:

  • Access Control Entry (ACE) - Каждая запись включает действие (разрешить или запретить) и набор фильтров, основанных на таких критериях, как адрес источника, адрес назначения, протокол и специфические параметры протокола.
  • MAC ACL - Фильтрует пакеты по MAC-адресам источника (mac-sa) и назначения (mac-da). MAC-адрес может быть задан в виде маски, как конкретный адрес (host id) или как любой адрес (any) для фильтрации всех MAC-адресов. MAC ACL также может фильтровать другие поля L2, такие как COS, VLAN-ID, INNER-COS, INNER-VLAN-ID, L2 type, L3 type.
  • IPv4 ACL - Фильтрует пакеты по IP-адресам источника (ip-sa) и назначения (ip-da). IP-адрес может быть задан в виде маски, как конкретный адрес (host id) или как любой адрес (any) для фильтрации всех IPv4-адресов. IPv4 ACL также может фильтровать поля L3 (например, DSCP) и L4 (например, TCP-порт, UDP-порт).
  • Time Range - Определяет период времени, в течение которого ACE действует, если он связан с временным диапазоном.

6.4.2 Конфигурация

Рисунок 6-2: ACL

Рисунок 6-2: ACL

В этом примере используется MAC ACL на интерфейсе eth-0-1, чтобы разрешить пакеты с исходным MAC-адресом 0000.0000.1111 и запретить любые другие пакеты. Также используется IPv4 ACL на интерфейсе eth-0-2, чтобы разрешить пакеты с исходным IP-адресом 1.1.1.1/24 и запретить любые другие пакеты.

Шаг 1: Перейдите в режим настройки

Switch# configure terminal

Шаг 2: Создайте список доступа

MAC ACL:

Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0000.0000.1111 dest-mac any
Switch(config-mac-acl)# deny src-mac any dest-mac any
Switch(config-mac-acl)# exit

IPv4 ACL:

Switch(config)# ip access-list ipv4
Switch(config-ip-acl)# permit any 1.1.1.1 0.0.0.255 any
Switch(config-ip-acl)# deny any any any
Switch(config-ip-acl)# exit

Шаг 3: Создайте class-map и привяжите список доступа

Class-map для MAC ACL:

Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit

Switch(config)# class-map cmap2
Switch(config-cmap)# match access-group ipv4
Switch(config-cmap)# exit

Шаг 4: Создайте policy-map и привяжите class-map

Policy-map для MAC ACL:

Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

Switch(config)# policy-map pmap2
Switch(config-pmap)# class cmap2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

Шаг 5: Примените policy к интерфейсу

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap1
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# service-policy input pmap2
Switch(config-if)# exit

Шаг 6: Выйдите из режима настройки

Switch(config)# end

Шаг 7: Проверка

Switch# show running-config
mac access-list mac
10 permit src-mac host 0000.0000.1111 dest-mac any
20 deny src-mac any dest-mac any
!
ip access-list ipv4
10 permit any 1.1.1.0 0.0.0.255 any
20 deny any any any
!
class-map match-any cmap1
match access-group mac
!
class-map match-any cmap2
match access-group ipv4
!
policy-map pmap1
class cmap1
!
policy-map pmap2
class cmap2
!
interface eth-0-1
service-policy input pmap1
!
interface eth-0-2
service-policy input pmap2
!